Unique or substantially unique data can be utilized in many electronic applications. For instance, random numbers can be utilized for identifying electronic devices on a network, or in conjunction with data exchange with other such devices. Further, random numbers or similar unique data can be employed as a key(s) of an encryption algorithm to encrypt and decrypt data. By employing unique data, collision occurrences, where two devices are indistinguishable on a network, or where duplicate keys exist to encrypt/decrypt data, are mitigated or avoided.
Various methods are utilized to generate unique data. One typical method is random number generation that employs a random number algorithm and/or hardware device. Such device/algorithm can be utilized to generate substantially unique numbers as applied to a particular entity, architecture, system, or the like (the degree of uniqueness often being dependent upon a number of digits, or size, of the random number). The random numbers can be binary, decimal, hexadecimal, and so on. Examples of unique or substantially unique data utilized in network communications are Internet Protocol (IP) addresses, which are substantially unique to a particular device as seen by the Internet, or media access control (MAC) addresses, which are substantially unique to networked electronic devices. Unique identifying information, like IP addresses and MAC addresses, can be an important aspect of electronic network communication, enabling devices to be distinguished from one another. Just as a mailing address must be distinguishable in order for mail to reliably arrive at a mailing destination, electronic devices must be distinguishable in order for data to reliably arrive at a network destination.
With regard to other applications such as data transformation, random numbers can be utilized as keys to encrypt and/or decrypt data. A decryption/encryption algorithm can transform data and render such data substantially impossible to understand without a proper key. The key then, becomes the primary mechanism for securing encrypted data utilizing such algorithms. Those who have the key can decrypt the data, those who do not, are typically unable to do so.
Keys vary in the security they provide, however, based on their difficulty to reproduce. The more difficult it is to regenerate a key, the less likely that encrypted data is subject to unauthorized access. Thus, a random number having many digits, such as 64, 128, 256 digits, and so on, can provide additional security as compared with a random number having smaller digits. As an example, modern computers can attempt to decrypt information by discovering the key. Some methods of discovering keys include ‘brute force’ methods, where all values for a given key domain range are input into encryption/decryption algorithms until an output is received that makes sense. Other ‘smarter’ methods are utilized as well, which can reduce time required to ‘break’ encrypted data as compared with brute force methods. Thus, to ensure security of encrypted data, it is important to develop encryption mechanisms to counteract developing attempts to break encryption.